package com.woniuxy.tfss.web.admin;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniuxy.tfss.entity.*;
import com.woniuxy.tfss.service.ItemService;
import com.woniuxy.tfss.service.OrderService;
import com.woniuxy.tfss.service.UARecordService;
import com.woniuxy.tfss.service.UserService;
import com.woniuxy.tfss.utils.MyUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.coyote.http11.filters.VoidInputFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.thymeleaf.util.StringUtils;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

@Controller("adminOrderController")
@RequestMapping("admin/order")
@CrossOrigin
@Slf4j
public class OrderController {
    @Autowired
    private OrderService orderService;
    @Autowired
    private ItemService itemService;
    @Autowired
    private UARecordService uaRecordService;
    @Autowired
    private UserService userService;
    /**
     * 订单多条件分页查询
     *
     * @param no
     * @param payType
     * @param orderTime
     * @param arrange
     * @param status
     * @param page
     * @return
     */
    @GetMapping("listByPage")
    @ResponseBody
    public ResponseEntity<Page<Order>> listByPage(String no, String payType, String[] orderTime, String arrange, String[] status, Integer page) {
        QueryWrapper<Order> wrapper = new QueryWrapper<>();
        if (!StringUtils.isEmpty(no)) {
            wrapper.like("no", no);
        } else if (!StringUtils.isEmpty(payType) && !"0".equals(payType)) {
            wrapper.eq("payType", payType);
        } else if (orderTime.length != 0) {
            wrapper.between("orderTime", orderTime[0], orderTime[1]);
        } else if (!StringUtils.isEmpty(arrange) && !"0".equals(arrange)) {
            wrapper.eq("arrange", arrange);
        } else if (status != null && status.length != 0) {
            for (String statu : status) {
                if ("0".equals(statu)) {
                    Page orderPage = new Page(page == null ? 1 : page, 10);
                    return new ResponseEntity<>(orderService.page(orderPage, wrapper));
                }
            }
            for (String statu : status) {
                wrapper.or().eq("status", statu);
            }
        }
        Page orderPage = new Page(page == null ? 1 : page, 10);
        return new ResponseEntity<>(orderService.page(orderPage, wrapper));
    }

    /**
     * 订单详情
     *
     * @param id 订单id
     * @return
     */
    @GetMapping("view")
    @ResponseBody
    public ResponseEntity<List<Item>> view(Integer id) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("orderId", id);
        List<Item> items = itemService.list(wrapper);
        return new ResponseEntity<>(items);
    }

    /**
     * 订单赔付，并且向用户消费记录表表加一条退款信息,并且修改账余额
     * @param id 订单ID
     * @param planId 赔付方案ID
     * @return
     */
    @GetMapping("changeStatus")
    @ResponseBody
    public ResponseEntity<Void> changeStatus(Integer id,String planId) {
        //查询订单条件
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("id", id);
        Order order1=orderService.getOne(wrapper);

        Integer userId=order1.getUserId();
        //查询用户条件
        QueryWrapper wrapper1=new QueryWrapper();
        wrapper1.eq("id",userId);
        Order order = new Order();
        //用户消费记录表
        UserAccountRecord userAccountRecord=new UserAccountRecord();
        userAccountRecord.setType("2");
        userAccountRecord.setOrderNo(order1.getNo());
        userAccountRecord.setUserId(userId);
        userAccountRecord.setTime(MyUtils.getNow());
        User user=userService.getById(userId);
        if(Order.PLAN1.equals(planId)){//选择赔付方案1，则对应状态改为已赔付50%，待评价，并向用户消费记录表增加一条退款记录
            order.setStatus(Order.PLAN1);
            userAccountRecord.setMoney(order1.getRealMoney().multiply(new BigDecimal(0.5)));
            user.setMoney(user.getMoney().add(order1.getRealMoney().multiply(new BigDecimal(0.5))));
            uaRecordService.save(userAccountRecord);
            userService.update(user,wrapper1);
        }else if(Order.PLAN2.equals(planId)){//选择赔付方案2，则对应状态改为已赔付100%，待评价，并向用户消费记录表增加一条退款记录
            order.setStatus(Order.PLAN2);
            userAccountRecord.setMoney(order1.getRealMoney().multiply(new BigDecimal(1)));
            user.setMoney(user.getMoney().add(order1.getRealMoney().multiply(new BigDecimal(1))));
            uaRecordService.save(userAccountRecord);
            userService.update(user,wrapper1);
        }else if(Order.RECEIVED.equals(planId)){
            order.setStatus(Order.RECEIVED);
        }
        orderService.update(order, wrapper);
        return ResponseEntity.SUCCESS;
    }

    /**
     * 骑手收益数据处理，及图形化
     * 骑手收益为，及时订单为订单金额的30%，预约单为订单金额的40%，超时订单直接不给予收益
     * @param id
     * @param  year
     * @return
     * @throws ParseException
     */
    @GetMapping("getByRiderId")
    @ResponseBody
    public ResponseEntity<BigDecimal[]> getByRiderId(Integer id,String year) throws ParseException {
        QueryWrapper<Order> wrapper = new QueryWrapper<>();
        wrapper.and(w->w.eq("status", Order.OVERTIME)
                .or().eq("status", Order.RECEIVED)
                .or().eq("status", Order.REMARKED)
                .or().eq("status", Order.PLAN1)
                .or().eq("status", Order.PLAN2)
                .or().eq("status", Order.REMARKEDPAY1)
                .or().eq("status", Order.REMARKEDPAY2));
        wrapper.eq("riderId", id);
//        wrapper.eq("status", Order.OVERTIME);//超时订单
//        wrapper.or().eq("status", Order.RECEIVED);//已完成未评价订单
//        wrapper.or().eq("status", Order.REMARKED);//已完成已评价订单
//        wrapper.or().eq("status", Order.PLAN1);//已完成未评价并赔付50%的订单
//        wrapper.or().eq("status", Order.PLAN2);//已完成未评价并赔付100%的订单
//        wrapper.or().eq("status", Order.REMARKEDPAY1);//已完成已评价并赔付50%的订单
//        wrapper.or().eq("status", Order.REMARKEDPAY2);//已完成已评价并赔付100%的订单
        List<Order> orders = orderService.list(wrapper);
        SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        BigDecimal[] getMoney = {new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), new BigDecimal(0)};
        orders.forEach(e -> {
            String time = e.getOrderTime();
            //定义每个月份的时间，一年12月
            String time1 = year+"-01-01 00:00:00";
            String time2 = year+"-02-01 00:00:00";
            String time3 = year+"-03-01 00:00:00";
            String time4 = year+"-04-01 00:00:00";
            String time5 = year+"-05-01 00:00:00";
            String time6 = year+"-06-01 00:00:00";
            String time7 = year+"-07-01 00:00:00";
            String time8 = year+"-08-01 00:00:00";
            String time9 = year+"-09-01 00:00:00";
            String time10 = year+"-10-01 00:00:00";
            String time11 = year+"-11-01 00:00:00";
            String time12 = year+"-12-01 00:00:00";
            String time13 = String.valueOf(Integer.parseInt(year)+1)+"-01-01 00:00:00";
            try {
                //将String转化为long类型
                long l = sim.parse(time).getTime();
                long l1 = sim.parse(time1).getTime();
                long l2 = sim.parse(time2).getTime();
                long l3 = sim.parse(time3).getTime();
                long l4 = sim.parse(time4).getTime();
                long l5 = sim.parse(time5).getTime();
                long l6 = sim.parse(time6).getTime();
                long l7 = sim.parse(time7).getTime();
                long l8 = sim.parse(time8).getTime();
                long l9 = sim.parse(time9).getTime();
                long l10 = sim.parse(time10).getTime();
                long l11 = sim.parse(time11).getTime();
                long l12 = sim.parse(time12).getTime();
                long l13 = sim.parse(time13).getTime();
                //判断订单时间是否处于该区间
                if (l >= l1 && l < l2) {
                    //进行骑手收益计算
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[0]=getMoney[0].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[0]=(getMoney[0].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[0]=(getMoney[0].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }

                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[0]=(getMoney[0].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[0]=(getMoney[0].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[0]=(getMoney[0].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[0]=(getMoney[0].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l2 && l < l3) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[1]=getMoney[1].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[1]=(getMoney[1].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[1]=(getMoney[1].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }

                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[1]=(getMoney[1].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[1]=(getMoney[1].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[1]=(getMoney[1].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[1]=(getMoney[1].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l3 && l < l4) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[2]=getMoney[2].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[2]=(getMoney[2].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[2]=(getMoney[2].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }

                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[2]=(getMoney[2].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[2]=(getMoney[2].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())){//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[2]=(getMoney[2].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[2]=(getMoney[2].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l4 && l < l5) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[3]=getMoney[3].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[3]=(getMoney[3].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[3]=(getMoney[3].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[3]=(getMoney[3].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[3]=(getMoney[3].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[3]=(getMoney[3].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[3]=(getMoney[3].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l5 && l < l6) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[4]=getMoney[4].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[4]=(getMoney[4].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[4]=(getMoney[4].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[4]=(getMoney[4].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[4]=(getMoney[4].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[4]=(getMoney[4].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[4]=(getMoney[4].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l6 && l < l7) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[5]=getMoney[5].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[5]=(getMoney[5].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[5]=(getMoney[5].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[5]=(getMoney[5].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[5]=(getMoney[5].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[5]=(getMoney[5].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[5]=(getMoney[5].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l7 && l < l8) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[6]=getMoney[6].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[6]=(getMoney[6].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[6]=(getMoney[6].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[6]=(getMoney[6].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[6]=(getMoney[6].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[6]=(getMoney[6].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[6]=(getMoney[6].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l8 && l < l9) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[7]=getMoney[7].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[7]=(getMoney[7].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[7]=(getMoney[7].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[7]=(getMoney[7].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[7]=(getMoney[7].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[7]=(getMoney[7].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[7]=(getMoney[7].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l9 && l < l10) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[8]=getMoney[8].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[8]=(getMoney[8].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[8]=(getMoney[8].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[8]=(getMoney[8].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[8]=(getMoney[8].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[8]=(getMoney[8].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[8]=(getMoney[8].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l10 && l < l11) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[9]=getMoney[9].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[9]=(getMoney[9].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[9]=(getMoney[9].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[9]=(getMoney[9].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[9]=(getMoney[9].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[9]=(getMoney[9].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[9]=(getMoney[9].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l11 && l < l12) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[10]=getMoney[10].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[10]=(getMoney[10].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[10]=(getMoney[10].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[10]=(getMoney[10].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[10]=(getMoney[10].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[10]=(getMoney[10].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[10]=(getMoney[10].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                } else if (l >= l12 && l < l13) {
                    if (Order.OVERTIME.equals(e.getStatus())) {//订单状态为3，超时订单
                        getMoney[11]=getMoney[11].add(new BigDecimal(0));
                    } else if (Order.RECEIVED.equals(e.getStatus()) || Order.REMARKED.equals(e.getStatus())) {//订单状态为4或者5，已完成订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[11]=(getMoney[11].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.4)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[11]=(getMoney[11].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                    else if(Order.PLAN1.equals(e.getStatus()) || Order.REMARKEDPAY1.equals(e.getStatus())){//订单状态为14或者16，已完成并且赔付50%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[11]=(getMoney[11].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.3)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[11]=(getMoney[11].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }else if(Order.PLAN2.equals(e.getStatus()) || Order.REMARKEDPAY2.equals(e.getStatus())) {//订单状态为15或者17,已完成并赔付100%的订单
                        if (Order.ISARRANGE.equals(e.getArrange())) {//预约单
                            getMoney[11]=(getMoney[11].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.2)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        } else if (Order.NOTARRANGE.equals(e.getArrange())) {//及时单
                            getMoney[11]=(getMoney[11].add(new BigDecimal(String.valueOf(e.getRealMoney().multiply(new BigDecimal(0.1)))))).setScale(2, BigDecimal.ROUND_HALF_UP);
                        }
                    }
                }

            } catch (ParseException parseException) {
                parseException.printStackTrace();
            }

        });
        return new ResponseEntity<>(getMoney);
    }
}
